package com.ccys.db.dto.doctor.completedOrEndCall;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @program: WhiteCoat
 * @description: 完成离线问诊的接收Dto
 * @author: ZhangJingCan
 * @create: 2024-03-05 09:15
 **/

@Data
public class CompleteOfflineBookingDto {

     private Boolean is_follow_up_video_consult;
     private String presenting_complaint;//": "test",
     private List<Diagnosis> diagnosis;//":
     private String mamagement;//": "test",
     private String instructions_to_patient;//": "test",
     private String flag_patient_id;//": 0,
     private String flag_patient_note;//": "",
     private String specialist_id;//": 404,
     private String medical_type;//": "",
     private String medical_letter;//": "",
     @JsonFormat(pattern = "yyyy/MM/dd")
     @DateTimeFormat(pattern = "yyyy/MM/dd")
     private Date medical_certification_begin_date;//": "2023/10/05",
     @JsonFormat(pattern = "yyyy/MM/dd")
     @DateTimeFormat(pattern = "yyyy/MM/dd")
     private Date medical_certification_end_date;//": "2023/10/05",
     private String medical_certification_additional_note;//": "",
     private List<Symptoms> symptoms;//": [],
     private List<Prescriptions> prescriptions;//": [],
     private String booking_id;//": "08eef4e6-aca3-4da7-8bef-712c5a773db8",
     private Boolean Need_Letter;//": false,
     private Boolean Need_Certificate;//": false,
     private List<Medications> medications;//": [],
     private List<Allergies> allergies;//":
     private List<MedicationReactions> medication_reactions;//":
     private BigDecimal patient_weight;//": 312.0,
     private BigDecimal patient_height;//": 22.0,
     private BigDecimal patient_temp;//": null,
     private BigDecimal patient_bp1;//": null,
     private BigDecimal patient_bp2;//": null,
     private BigDecimal patient_hr;//": null,
     private String member_id;//": "432223f0-e2bf-4d5e-91db-9ff3b9213b8c",
     private String consult_fee_id;//": null,
     private String consult_fee_text;//": null,
     private String follow_up_code;//": "",
     private List<Referrals> referrals;//": [],
     private String patient_summary;//": "",
     private Boolean diagnosis_allow_patient_to_claim;//": false,
     private String basic_cdmp_information;//": null,
     private Boolean is_cdmp_chronic;//": false

     @Data
     public static class Diagnosis{
          private Integer ordering;//": 0,
          private String id;//": null,
          private String name;//": "R23.2 - Flushing",
          private String code;//": null,
          private Boolean is_in_exclusion_list;//": false,
          private String trans_name;//": ""
     }

     @Data
     public static class Symptoms {
          private Integer ordering;//": 0,
          private String id;//": null,
          private String name;//": "fever, headache"
     }

     @Data
     public static class Prescriptions {
          private String id;//": "17b90490-1927-4ddb-8493-c5325642ccd6",
          private Integer dosage;//": 0,
          private String dosage_text;//": "DOSAGE",
          private BigDecimal quantity;//": 1.0,
          private Integer refill;//": 0,
          private String refill_expiry_date;//": "",
          private String patient_instruction;//": "patient_instruction",
          private String pharmacist_instruction;//": "pharmacist_instruction",
          private String frequency;//": "",
          private String what_is_for;//": "sfdgh",
          private String causes_drowsiness;//": "false",
          private String any_precautions;//": "Use as directed",
          private String duration;//": null,
          private Integer duration_unit;//": 1,
          private Integer uom_quantity;//": null,
          private Boolean prn;//": false,
          private String prn_reason;//": "",
          private String unit;//": null,
          private Boolean is_package;//": false,
          private String package_id;//": null,
          private String step_dose;//": "",
          private Boolean take_complete_course;//": false,
          private String remark;//": "kijhgf",
          private String product_id;//": null,
          private String product_name;//": null,
          private BigDecimal product_price;//": 0.0,
          private String index_order;//": null,
          private Boolean is_covered_diagnosis;//": false,
          private Boolean remind_patient_to_call_back;//": false
     }

     @Data
     public static class Medications {
          private String name;//": "Klacid (Clarithromycin) 250mg/5ml Susp 60ml",
          private String usage_period;//": "e2fb447a-e0eb-4612-a282-f01918b987ed",
          private String usage_period_id;//": "e2fb447a-e0eb-4612-a282-f01918b987ed",
          private String id;//": "2980181f-0fdc-4af4-90d7-3490f59e4c54",
          private String amount_of_dosage;//": "1"
     }

     @Data
     public static class Allergies{
          private String id;//": "4c6edf34-ab88-4beb-8394-006d74373ff9",
          private String name;//": "Nurofen (Ibuprofen) For Children 60 ml",
          private Integer index;//": 1,
          private String mem_allergies_id;//": null,
          private String MDAllergies_ID;//": null
     }

     @Data
     public static class MedicationReactions{
          private String id;//": "e4a173be-2c9f-4986-8812-b32d2e0b5689",
          private String name;//": "Elevated Blood Pressure",
          private Integer index;//": 1,
          private String mem_medication_reaction_ID;//": null,
          private String MD_MedicationReaction_ID;//": null,
          private String otherreaction;//": ""
     }

     @Data
     public static class Referrals {
          private String specialist_id;//": 404,
          private String MDST_ID;//": 3,
          private String specialist_company_name;//": "WhiteCoat",
          private String specialist_name;//": null,
          private String specialist_mobile;//": null,
          private String specialist_clinic_name;//": null,
          private String specialist_address;//": null,
          private Integer specialisation_type;//": null,
          private String referral_letter_text;//": "letterefrgthj",
          private String referral_letter_code;//": "-A"
     }
}
